import React, {Component} from 'react';
import Child from "./components/Child";
import My from "./components/my";
class App extends Component {
    state = {
        isError:false,// 是否产生了异常
    }
    // getDerivedStateFromError 是一个静态方法
    // 该方法会在子组件挂载过程中产生同步异常时执行
    // 方法会返回一个对象，该对象会与当前的状态进行合并
    // 该方法常与componentDidCatch结合使用
    // 在当前版本中可以直接使用该钩子，在之前的版本中只有生产环境中才可以有效果。
    static getDerivedStateFromError(error){
        console.log("getDerivedStateFromError",error.message);
        return {
            isError:true
        }
    }
    // 该函数会在getDerivedStateFromError之后运行
    // 通过该函数可以发送ajax请求与服务器进行沟通。
    componentDidCatch(error, errorInfo) {
        console.log("componentDidCatch",error,errorInfo)
    }
    componentDidMount(){
        let a = 1;
        a();
    }
    render() {
        return (
            <div>
                {
                    this.state.isError?<h3>组件加载异常……</h3>:<Child/>
                }
                <My></My>
            </div>
        );
    }
}

export default App;